﻿Imports System.Windows.Forms
Imports Logica

Public Class frmFacturacion

    Public f As frmInicio = New frmInicio

    Public Sub agregar(ByRef ff As frmInicio)

        f = ff

    End Sub

    Private Sub Facturacion_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


        'Objeto para manejar turno de cajero
        Dim facturacion As ClaseFacturacion = New ClaseFacturacion
        Dim nroPV As Integer
        Dim terminalId As String
        Dim cajero As String

        AccesoLogica.setParametrosImpresora()
        'AccesoLogica.setCadenaConexion()

        terminalId = AccesoLogica.getTerminalIdEwave()
        nroPV = AccesoLogica.getNroPuntoVenta()
        cajero = AccesoLogica.getUsuarioActivo()

        facturacion.setProperty(cajero, nroPV, terminalId)

        If nroPV > 0 Then

            ToolStripStatusNroPv.Text = "Punto de venta: " & nroPV
            ToolStripStatusUsuario.Text = "Usuario: " & cajero
            ToolStripStatusTrmEwave.Text = "Terminal Ewave: " & terminalId

            txtNumeroTransaccion.Focus()
        Else
            MessageBox.Show("Error al obtener el número de punto de venta del controlador.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If

    End Sub


    Public Sub limpiarCampos()

        'gvTransacciones
        gvTransacciones.DataSource = Nothing
        gvTransacciones.Refresh()
        AccesoLogica.vaciarArrayItemTransaccion()
        lblResultadoTotalEntradas.Text = "0"
        lblTasaCobrada.Text = "0"
        lblTotalSCCobrar.Text = "0"
        lblTotalTicketSC.Text = "0"

    End Sub

    Private Sub txtNumeroTransaccion_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNumeroTransaccion.KeyPress

        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            btnConsultarTransaccion.Focus()
        End If

        If Char.IsDigit(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If

    End Sub

    Private Sub btnImprimirTicket_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImprimirTicket.Click

        Dim totalSC As String = ""

        totalSC = AccesoLogica.quitarSeparadorDecimal(lblTotalSCCobrar.Text)

        MsgBox("valor a imprimir: " & totalSC)

        If AccesoLogica.imprimir_Ticket(totalSC) Then

            limpiarCampos()

        End If

    End Sub

    Private Sub btnLimpiarCampos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimpiarCampos.Click

        txtNumeroTransaccion.Text = ""
        limpiarCampos()

    End Sub

    Private Sub btnConsultarTransaccion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConsultarTransaccion.Click

        Dim tran As Integer
        limpiarCampos()

        If AccesoLogica.getEstadoConexion() Then
            If Not txtNumeroTransaccion.Text.Equals("") Then
                tran = txtNumeroTransaccion.Text
                If AccesoLogica.getTransaccionLocal(tran) = 0 Then
                    'Aca se llama al otro store que busca los datos de la transaccion
                    If AccesoLogica.getTransaccionEwave(tran) Then

                        gvTransacciones.AutoGenerateColumns = False
                        gvTransacciones.DataSource = AccesoLogica.getArrayItem()

                        'seteo la tasa del service charge
                        AccesoLogica.setTasaSC()
                        'seteo label de total entradas
                        lblResultadoTotalEntradas.Text = "$ " & FormatNumber(AccesoLogica.getImporteTotalEntradas(), 2)
                        'seteo label de tasa de sc cobrada
                        lblTasaCobrada.Text = FormatNumber(AccesoLogica.getTasaSC(), 2) & " %"
                        'seteo label importe sc cobrado
                        lblTotalSCCobrar.Text = "$ " & FormatNumber(AccesoLogica.calcularSC(), 2)
                        'seteo label total a cobrar
                        lblTotalTicketSC.Text = "$ " & FormatNumber(AccesoLogica.getImporteTotalEntradas() + AccesoLogica.calcularSC(), 2)

                    Else
                        MsgBox("No se encontro la transaccion")
                    End If
                Else
                    MessageBox.Show("Ya se emitio el ticket para la transaccion Nº " & tran & " ,verifique si el número es correcto.", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                End If
            Else
                MessageBox.Show("No ingreso un número de transacción valida.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        Else
            MessageBox.Show("Error al conectar con el servidor, reintente.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtNumeroTransaccion.Text = ""
            txtNumeroTransaccion.Focus()
        End If

    End Sub


End Class